package com.qqn.zcy.class03;

/**
 * 给定一个链表，给定一个值，在这个链表中将所有的这个值都删掉，并且返回新的链表
 * 1 -> 2 -> 3 -> 4 -> 3 -> 5
 * 2 -> 3 -> 4 -> 3 -> 5  删 1
 * 1 -> 2 -> 4  -> 5   删 3
 * 所以需要返回新头部的链表
 */
public class Code02_DeleteGivenValue {
}
/*
package com.qqn.temp03;

public class Code02_DeleteGivenValue {

	public static class Node {
		public int value;
		public Node next;

		public Node(int data) {
			this.value = data;
		}
	}

	// head = removeValue(head, 2);
	public static Node removeValue(Node head, int num) {
		// head来到第一个不需要删的位置
		// 如果上来要删除的就是链表头部
		while (head != null) {
			if (head.value != num) {
				break;
			}
			head = head.next;
		}
		// 1 ) head == null  链表中全是 num 这个值
		// 2 ) head != null  链表中存在不是num的值现在head就是这个值
		Node pre = head;
		Node cur = head;
		while (cur != null) {
			if (cur.value == num) {
				pre.next = cur.next; // 直接跳过 num 这个节点连接上 num 的下一个节点
			} else {
				pre = cur;  // 不是 num 的话 就让 pre 移动到这个节点上
			}
			cur = cur.next;
		}
		return head;
	}

}

 */
